package com.ruicar.afs.cloud.basic.proceeds.debit.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.ruicar.afs.cloud.common.modules.contract.enums.DebitStatusEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.FeeTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.experimental.Accessors;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;

/**
 * @author: Lee
 * @date 2020-05-29 09:31:34 
 * @description 每日待扣款明细记录表
 */
@Data
@Accessors(chain = true)
@TableName(value ="basic_debit_record", autoResultMap = true)
public class BasicDebitRecord {

	@TableId(
			value = "id",
			type = IdType.ASSIGN_ID
	)
	private Long id;
	/** 合同编号 */
	@ApiModelProperty("合同编号")
	private String contractNo;
	/** 当前扣款批次id 每次打包扣款后的扣款批次id */
	@ApiModelProperty("当前扣款批次id 每次打包扣款后的扣款批次id")
	private Long batchId;
	/** 费用类型 枚举值：本金，利息，罚息，提前结清款，催收费用，客户信息变更费用 */
	@ApiModelProperty("费用类型 枚举值：本金，利息，罚息，提前结清款，催收费用，客户信息变更费用")
	private FeeTypeEnum feeType;
	/** 费用来源表名 */
	@ApiModelProperty("费用来源表名")
	private String sourceTable;
	/** 费用id */
	@ApiModelProperty("费用id")
	private Long sourceId;
	/** 待扣款金额 不可为负数 */
	@ApiModelProperty("待扣款金额 不可为负数")
	private BigDecimal readyAmt;
	/** 已扣款成功金额 不可为负数 */
	@ApiModelProperty("已扣款成功金额 不可为负数")
	private BigDecimal succeedAmt;
	/** 正在扣款金额 不可为负数 */
	@ApiModelProperty("正在扣款金额 不可为负数")
	private BigDecimal goingAmt;
	/** 扣款状态 枚举值：可扣款，扣款中，扣款完成，不可扣款 */
	@ApiModelProperty("扣款状态 枚举值：可扣款，扣款中，扣款完成，不可扣款")
	private DebitStatusEnum debitStatus;
	/** 扣款签约银行 央行标准银行代码 */
	@ApiModelProperty("扣款签约银行 央行标准银行代码")
	private String debitSignBank;
	/** 扣款签约码 */
	@ApiModelProperty("扣款签约码")
	private String debitSignCode;
	/** 开户银行支行 */
	@ApiModelProperty("开户银行支行")
	private String debitBankBranch ;
	/** 开户行电子联行号（分支行） */
	@ApiModelProperty("开户行电子联行号（分支行）")
	private String debitEbankCode;
	/** 扣款卡账号 */
	@ApiModelProperty("扣款卡账号")
	private String debitAccount;
	/** 扣款卡账户名 */
	@ApiModelProperty("扣款卡账户名")
	private String debitAccountName;
	/** 扣款卡绑定手机号码 */
	@ApiModelProperty("扣款卡绑定手机号码")
	private String debitCardPhone;
	/** 扣款卡证件号码 */
	@ApiModelProperty("扣款卡证件号码")
	private String debitCertNo;
	/** 扣款入账银行 实际扣款入账银行代码（央行标准） */
	@ApiModelProperty("扣款入账银行 实际扣款入账银行代码（央行标准）")
	private String creditBankCode;
	/** 扣款入账银行账号 */
	@ApiModelProperty("扣款入账银行账号")
	private String creditAccount;
	/** 期数 本金、利息、罚息时写入 */
	@ApiModelProperty("期数 本金、利息、罚息时写入")
	private Integer termNo;
	/** 当日核销金额 不可为负数 */
	@ApiModelProperty("当日核销金额 不可为负数")
	private BigDecimal writeOffAmt;
	/** 应收日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("应收日期")
	private Date planDate;
	/** 逾期天数 */
	private Integer overdueDays;
	/** 记录日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("记录日期")
	private Date recordDate;
	/** 当日手动扣款失败次数 */
	@ApiModelProperty("当日手动扣款失败次数")
	private Integer manualNum;
	/** 乐观锁 */
	@ApiModelProperty("乐观锁")
	private Long revision ;

	@ApiModelProperty("创建者")
	@TableField(
			fill = FieldFill.INSERT
	)
	private String createBy;
	@JsonFormat(
			timezone = "GMT+8",
			pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@DateTimeFormat(
			pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@ApiModelProperty("创建时间")
	@TableField(
			fill = FieldFill.INSERT
	)
	private Date createTime;
	@ApiModelProperty("更新者")
	@TableField(
			fill = FieldFill.UPDATE
	)
	private String updateBy;
	@JsonFormat(
			timezone = "GMT+8",
			pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@DateTimeFormat(
			pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@ApiModelProperty("更新时间")
	@TableField(
			fill = FieldFill.UPDATE
	)
	private Date updateTime;

}
